139b1e7e6c67864c7e20758fffd034b18a4b1531,server/src/main/java/com/orientechnologies/orient/server/handler/OAutomaticBackup.java,OAutomaticBackup,config,#OServer#OServerParameterConfiguration[]#,40

Before Change


		OLogManager.instance().info(this, "Automatic backup handler installed and active: delay=%dms, targetDirectory=%s", delay,
				targetDirectory);

		Orient.getTimer().schedule(new TimerTask() {

			@Override
			public void run() {
				OLogManager.instance().info(this, "[OAutomaticBackup] Scanning databases to backup...");

				int ok = 0, errors = 0;

				final Map<String, String> databaseNames = OServerMain.server().getAvailableStorageNames();
				for (final Entry<String, String> dbName : databaseNames.entrySet()) {
					boolean include;

					if (includeDatabases.size() > 0)
						include = includeDatabases.contains(dbName.getKey());
					else
						include = true;

					if (excludeDatabases.contains(dbName.getKey()))
						include = false;

					if (include) {
						final String fileName = OVariableParser.resolveVariables(targetFileName, OSystemVariableResolver.VAR_BEGIN,
								OSystemVariableResolver.VAR_END, new OVariableParserListener() {
									@Override
									public String resolve(final String iVariable) {
										if (iVariable.equalsIgnoreCase(VARIABLES.DBNAME.toString()))
											return dbName.getKey();
										else if (iVariable.startsWith(VARIABLES.DATE.toString())) {
											return new SimpleDateFormat(iVariable.substring(VARIABLES.DATE.toString().length() + 1)).format(new Date());
										}

										// NOT FOUND
										throw new IllegalArgumentException("Variable '" + iVariable + "' wasn't found");
									}
								});

						final String exportFilePath = targetDirectory + fileName;
						final ODatabaseDocumentTx db = new ODatabaseDocumentTx(dbName.getValue());

						try {
							db.setProperty(ODatabase.OPTIONS.SECURITY.toString(), Boolean.FALSE);
							db.open("admin", "aaa");

							final long begin = System.currentTimeMillis();

							new ODatabaseExport(db, exportFilePath, new OCommandOutputListener() {
								@Override
								public void onMessage(final String iText) {

								}
							}).exportDatabase();

							OLogManager.instance().info(
									this,
									"[OAutomaticBackup] - Backup of database '" + dbName.getValue() + "' completed in "
											+ (System.currentTimeMillis() - begin) + "ms");
							ok++;

						} catch (IOException e) {
							OLogManager.instance().error(this,
									"[OAutomaticBackup] - Error on exporting database '" + dbName.getValue() + "' to file: " + exportFilePath, e);
							errors++;
						} finally {
							db.close();
						}
					}
				}
				OLogManager.instance().info(this, "[OAutomaticBackup] Backup finished: %d ok, %d errors", ok, errors);
			}
		}, delay, delay);
	}

	@Override

After Change


      }
    };

    if (firstTime == null)
      Orient.getTimer().schedule(timerTask, delay, delay);
    else
      Orient.getTimer().schedule(timerTask, firstTime, delay);
  }

  @Override